This invention relates generally to the determination of unknown relationships between storage devices and storage device enclosures and, more specifically, to the efficient, probabilistic determination of which storage devices reside in a storage device enclosure, when the storage device enclosure itself cannot be directly addressed.
Data is the underlying resource on which all computing processes are based. Data is stored on storage devices, and these devices are accessed by applications based on a computer server. Examples of storage devices include, but are not limited to, hard disk drives, optical disk drives, tape drives and memory storage devices. Historically, the management of storage was centralized with storage devices directly connected to a host computer, and managed by the information technology (IT) department.
New data-intensive applications, such as the Internet and e-business, have fueled explosive growth in the demand for data storage, creating formidable storage management requirements. With the advent of client/server computing, a multitude of storage devices are dispersed and connected to individual machines in far flung networks. These xe2x80x9cislandsxe2x80x9d of information are often hard to access from other islands.
In response to the problems presented by client/server environments, Storage Area Networks (SANs) have evolved. A SAN is a high-speed network dedicated to information management. More formally, a SAN is a combination of technologiesxe2x80x94including hardware, software and networking componentsxe2x80x94that provides any-to-any interconnection of server and storage elements.
SANs are based on a xe2x80x9cfabricxe2x80x9d of Fibre Channel hubs, switches and gateways connecting storage devicesxe2x80x94such as storage device (e.g., disk drive) enclosures, optical disks or tape librariesxe2x80x94and servers on a many-to-many basis. Application and transaction servers are attached to both the SAN and to Local Area Networks (LANs) or Wide Area Networks (WANs), creating what appears to be a massive pool of data.
SANs typically include one or more storage device enclosures, connected to one or more host computers via a link such as a Small Computer System Interface (SCSI) bus, or Serial Storage Architecture (SSA) loop. A storage device enclosure is an external box (or bay), typically larger than the main computer enclosure, which holds multiple physical storage devices (usually more than the computer proper can hold internally). Storage device enclosures often provide redundant power supplies and fans that can be replaced without impacting system operation. If a storage device failure occurs, hot-swappable drives can be removed and replaced without disrupting the communication between the host computer adapter and other storage devices on the loop.
Typically, a server computer can determine, by addressing a storage device, which storage device enclosure the storage device resides in. But, a storage device enclosure cannot be directly addressed by a server computer to determine which storage devices reside in a storage device enclosure. Thus, in a two entity relationship (i.e. entity A being the storage device, and entity B being the storage device enclosure), the A to B relationship can be directly determined, but the B to A relationship cannot be directly determined.
In order to continuously monitor operational characteristics of the storage device enclosure such as internal temperature, fan status, power supply status, and storage device slot status, it is vital for a server computer to quickly and efficiently access a specific storage device enclosure. In order to determine the storage devices residing within a specific storage device enclosure, the server computer must build an enclosure access table, which contains the enclosure-to-storage device relationship.
In order to build the enclosure access table, each storage device must be individually queried by the host computer to determine in which enclosure the storage device resides. A storage configuration may contain dozens of enclosures containing hundreds of storage devices. Since each storage device query operation may take up to several seconds under certain operating conditions, the building of the enclosure access table is a very slow operation, severely affecting system performance.
During operation of the storage system, storage devices can be added, removed, or exchanged to/from the various storage device enclosures. Maintenance of the enclosure access table incurs a huge performance penalty, since for every (generic) topology change, the server computer must re-query each storage device in order to determine in which enclosure it now resides.
Thus, there is a need for an apparatus and method for quickly determining which storage device is most likely to reside in a given storage device enclosure, when the exact relationship between storage devices and enclosures is not known. The method and apparatus should operate without requiring an inefficient rebuild of the enclosure access table upon each storage device topology change within the storage system. These and other objects, features and advantages of the present invention will be further described and more readily apparent from the summary, detailed description and preferred embodiments, the drawing and the claims which follow.
The invention is a method, program product, and system for the probabilistic determination of storage device enclosure-to-storage device relationships in a storage system when the exact relationship is unknown. Operators cannot communicate directly with storage device enclosures, but can indirectly communicate with storage device enclosures via a storage device residing in the storage device enclosure. Operators need to communicate with storage device enclosures in order to monitor operating parameters of the enclosure. By predicting which storage device is most likely to reside within a selected disclosure, an operator is able to communicate with the storage device enclosure via the identified storage device. The invention eliminates the inefficiencies of completely rebuilding an enclosure-to-storage device relationship table upon each topology change within the storage system.
In a preferred embodiment, an enclosure access table is built at system startup which represents the initial representation of which storage devices reside within each of the storage device enclosures. In order to build the enclosure access table, each storage device must be queried to determine in which enclosure it resides. If a topology change occurs within the storage device system, the enclosure access table is not rebuilt, because of the large performance penalty involved. When an operator wishes to access a specific enclosure, the enclosure access table is opened, and the most recently added storage device entry for the selected enclosure is chosen. The chosen storage device is queried for its current physical location. If the chosen storage device still resides within the selected enclosure, the operator begins communication with the selected enclosure via the chosen storage device. If the chosen storage device does not currently reside within the selected enclosure, the storage device entry is removed from the entry for the selected enclosure, and added to the entry for the enclosure where it currently resides. The next storage device is then chosen for the selected enclosure, and the process is repeated until a storage device referenced by the storage device entry is determined to physically reside within the selected enclosure. If the list of storage device entries for an enclosure in the enclosure access table is exhausted, the enclosure access table is rebuilt.
The claimed invention offers the advantage of avoiding the rebuild of the enclosure-to-storage device mapping table upon each topology change in a storage device storage system, significantly enhancing storage system performance. The present invention also offers the advantage of being easily implementable within a wide variety of storage systems, in hardware, firmware, or software.